草庐IT

Android:捕获 Activity 的返回

全部标签

ruby - open-uri 从以 iso-8859 编码的网页返回 ASCII-8BIT

我正在使用open-uri读取一个声称以iso-8859-1编码的网页。当我读取页面内容时,open-uri返回一个以ASCII-8BIT编码的字符串。open("http://www.nigella.com/recipes/view/DEVILS-FOOD-CAKE-5310"){|f|pf.content_type,f.charset,f.read.encoding}=>["text/html","iso-8859-1",#]我猜这是因为网页中的字节(或字符)\x92不是有效的iso-8859字符。http://en.wikipedia.org/wiki/ISO/IEC_8859-

ruby - 如何在 EventMachine 实现中捕获异常?

我有一个与thisotherpost类似的问题我已经尝试了给定的解决方案,但无济于事。我的项目是一个使用Blather的Ruby机器人库连接到Jabber服务器。问题是,当服务器出现问题并且Blather生成异常时,整个程序退出,我没有机会捕获异常。下面是一些显示问题的简单代码。本地主机上没有运行Jabber服务器,因此Blather客户端抛出异常。我的印象是EM.error_handler{}能够拦截它,但我从未看到****ERROR消息,程序就停止了。:(#!/usr/bin/envrubyrequire'rubygems'require'blather/client/client

Ruby 捕获 NoMethodError 并从发生异常的地方继续执行

在Ruby中,我想在另一个对象中捕获在一个对象上生成的NoMethodError,然后将一些值返回到引发异常的位置并继续执行。有没有现成的方法可以做到这一点?我想到的最好的是:classExceptionattr_accessor:continuationendclassOuterdefhelloputs"hello"endclassInnerdefworldputs"world"enddefmethod_missing(method,*args,&block)x=callccdo|cc|e=RuntimeError.exception(method)e.continuation=cc

Ruby 惯用法短路返回第一个非零使用每个和映射

这是我正在尝试做的事情的本质,但“中断”不正确:needle=nilhaystacks.eachdo|haystack|needle=haystack.look_for_needle()breakifneedleend这更短,但它会遍历每个干草堆(至少不看),即使它不需要:needle=nilhaystacks.eachdo|haystack|needle||=haystack.look_for_needle()end这是一个单行代码,但(我相信)它并不懒惰,所以它做了不必要的工作:needle=hackstacks.map{|h|h.look_for_needle()}.detect

Ruby 正则表达式,只有一次捕获(非常简单!)

我想这将是一个愚蠢的错误,但对我来说,以下返回一个仅包含“M”的数组。看这个:/(.)+?/.match("Manymanycharacters!").captures=>["M"]为什么它不返回每个字符的数组?我一定是错过了一些明显的东西,因为我看不出这有什么问题?编辑:刚刚意识到,我不需要+?但没有它仍然无法工作。编辑:抱歉!我会澄清:我的目标是让用户输入正则表达式和样式以及输入文本文件,只要有匹配项,文本就会被html元素包围并应用样式,我不只是拆分将字符串转换为字符,我只使用了给定的正则表达式,因为它是最简单的,尽管这对我来说很愚蠢。我如何从scan()获取捕获组或者这是不可能

ruby-on-rails - 如何在 heroku worker 中捕获内存配额异常

我正在使用delayed_job来处理heroku的后台作业。有时我会超出我的内存分配,我会得到这样的东西:2011-11-16T02:41:25+00:00heroku[worker.1]:错误R14(超出内存配额)2011-11-16T02:41:45+00:00heroku[worker.1]:进程运行mem=542M(106.0%)我想优雅地处理这个。有没有办法知道我什么时候会超出我的内存限制?类似于rack-timeout会很棒谢谢! 最佳答案 我想我找到了一个很好的解决方案,从Oink中窃取了一些代码。gem。特别是这个

Ruby 除法无穷大/NaN 应返回 0

我有一个基于RubyOnRails的应用程序。在应用程序中,我想在Ruby中覆盖父类的划分。用于处理以下异常。我到处搜索。我想在应用程序中覆盖ruby除法。因此对于以下结果,它应该返回零。0.0/0=>NaN1.0/0=>InfinityZeroDivisionError:dividedby0我可以通过在除法运算中到处更改代码来处理它。但我想通过覆盖方法本身来节省我的时间。 最佳答案 您不需要特殊方法或像其他答案所述那样扩展float类。Ruby在Float类上为您提供了一个名为.finite的方法?http://ruby-doc.

ruby-on-rails - 西里尔字符串 Я̆ Я̄ Я̈ 在 ruby​​ 和其他编程语言中返回长度 2 而不是 1

在Ruby、Javascript和Java(其他我没试过)中,有西里尔字符Я̆Я̄Я̈长度2。当我尝试用这些字符检查字符串的长度时,我得到了错误的输出值。"Я̈".mb_chars.length#=>2#shouldbe1(rubyonrails)"Я̆".length#=>2#shouldbe1(ruby,javascript)"Ӭ".length#=>1#correct(ruby,javascript)请注意,字符串以UTF-8编码,每个字符都表现为单个字符。我的问题是为什么会有这样的行为,我怎样才能正确地得到带有这些字符的字符串的长度? 最佳答案

ruby - 使用 Mechanize gem 根据链接在 DOM 中的位置返回链接集合

我正在为Mechanize而苦苦挣扎。我希望“单击”一组只能通过其位置(div#content中的所有链接)或其href来识别的链接。以上两种识别方法我都试过了,都没有成功。从文档中,我无法弄清楚如何根据链接在DOM中的位置而不是直接通过链接上的属性返回一组链接(用于单击)。其次,documentation建议你可以使用:href来匹配部分href,page=agent.get('http://foo.com/').links_with(:href=>"/something")但我让它返回链接的唯一方法是传递一个完全限定的URL,例如page=agent.get('http://foo

ruby - 为什么 truth && "string"返回 "string"

假设我有一个类似的东西true&&true#=>true这是有道理的,所以我尝试这样的事情:true&&"dsfdsf"#=>"dsfdsf"这让我很惊讶,因为很多时候我会做类似ifsomething&&something的事情,我一直认为那是评估为true并且会返回true。进一步的实验做这样的事情:jruby-1.7.3:009>"ad"&&"dsf"=>"dsf"jruby-1.7.3:010>"ad"&&"sdfd"&&nil=>niljruby-1.7.3:011>"ad"&&nil&&"sdf"=>nil使Ruby看起来要么返回最后一个值(如果全部为true),要么返回它找